Форматы хранения данных: comma separated values - допускается, что разделитель может встречаться внутри полей, поэтому нужен механизм quotes (возможность заключения в кавычки (для защиты от проблемы с использованием кавычек с самих полях ведётся подсчёт чётности справа и слева от запятой (вообще говоря справа, потому что lookahead быстрее))) (регулярными выражениями легче разбирается, чем экранированием) tab delimited values - подразумевается, что разделитетль в полях не встречается character map - это такая логическая конструкция, которая фиксирует конечное множество символов, где каждый символ характеризуется своим кодом и своей интерпретацией. (например, что 401h - это прописная кириллическая "а" (при этом мы не говорим, как оно выглядит)) Дополнительно может храниться информация о том, как эти символы делятся на классы. Collation - это сопоставление символов (например перевод строчных в прописных и обратно, например при желании сравнивать символы, игнорируя регистр, ...) Ещё бывают символы, которые входят в комбинацию с другими символами (например постановка 2-х точек над предыдущей букве, или постановка ударения, ...) Для большинства таблиц символов множество кодов лежит от 0 до 255 - нету никаких гарантий на тему дырок/упорядочивания/... В unicode коды лежат от 0 до 10FFFF Coding/encoding - перевод последовательности кодов в последовательность байт. Самая известная процедура кодирования - singlebyte, но потом начали придумывать multibyte (utf8, cp1251, ...) Проблема endians - проблема того, в каком порядке писать multibyte В unicode есть символ BOM (byte order mark) (FFFE). Договорились, что текстовый файл начинается с этого символа. После чего этот символ сохраняют соответствующей кодировкой, и дальше в зависимости от того, что получилось, можно понять, какая кодировка использовалась. utf-8 этот символ превращает в 3 байта. Кстати этот байт хорошо виден, если открыть файл в бинарном режиме. Считается, что символ конца строки в строке не содержится. Считается, что в конце файла лежит символ конца строки (хотя при работе с файлом, например конкатенации посимвольной, то мы его не увидим) Для работы со строками часто пользуют регулярные выражения.